#ifndef _SET_
#define _SET_

#include <stdlib.h>


typedef struct set_data* set;

typedef struct tnode* Treeptr;

typedef int element_t;

typedef enum boolean {false = 0, true} bool;

set create(void);
/*This fuction creates the set*/
/*In case of failure returns NULL*/

void clear(set target_set);
/*This fuction clears the set*/

void destroy(set target_set);
/*This fuction deletes the set*/

unsigned int size(set target_set);
/*this fuction returns the set's size*/

bool insert(set target_set, element_t data);
/*This fuction inserts the data in the set*/
/*In case of failure returns false*/

bool remove_data(set target_set, unsigned int node);
/*This fuction removes the "node" node of the set*/
/*In case of failure returns false*/

element_t at(set target_set, unsigned int node);
/*This fuction returns the data of the "node" node of the set*/

#endif
